package com.lzq.chatroom_project.service.impl;

import com.lzq.chatroom_project.dao.MessageSessionMapper;
import com.lzq.chatroom_project.model.Friend;
import com.lzq.chatroom_project.model.MessageSession;
import com.lzq.chatroom_project.model.MessageSessionUserItem;
import com.lzq.chatroom_project.service.IMessageSessionService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Slf4j
@Service
public class MessageSessionServiceImpl implements IMessageSessionService {

    @Autowired
    private MessageSessionMapper messageSessionMapper;

    @Override
    public List<Friend> getFriendListBySessionId(Integer sessionId, Integer selfId) {
        log.info("开始执行getFriendListBySessionId方法,接收参数:sessionId:{},selfId:{}",sessionId,selfId);
        List<Friend> friendList = messageSessionMapper.queryFriendsBySessionId(sessionId,selfId);
        return friendList;
    }

    @Override
    public List<Integer> getSessionIdsByUserId(Integer userId) {
        log.info("开始执行getSessionIdsByUserId方法,接收参数:userId:{}",userId);
        List<Integer> sessionIds = messageSessionMapper.querySessionIdsByUserId(userId);
        return sessionIds;
    }

    @Override
    public Integer addMessageSession(MessageSession messageSession) {
        log.info("开始执行addMessageSession方法,接收参数:messageSession:{}",messageSession);
        return messageSessionMapper.insertMessageSession(messageSession);
    }

    @Override
    public void addMessageSessionUserItem(MessageSessionUserItem messageSessionUserItem) {
        log.info("开始执行addMessageSessionUserItem方法,接收参数:messageSessionUserItem:{}",messageSessionUserItem);
        messageSessionMapper.insertMessageSessionUserItem(messageSessionUserItem);
    }

    @Override
    public String getLastMessageBySessionId(Integer sessionId) {
        log.info("开始执行getLastMessageBySessionId方法,接收参数:sessionId:{}",sessionId);
        return messageSessionMapper.getLastMessagesBySessionId(sessionId);
    }

    @Override
    public List<Integer> getUserIdsBySessionId(Integer sessionId) {
        log.info("开始执行getUserIdsBySessionId方法,接收参数:sessionId:{}", sessionId);
        return messageSessionMapper.queryUserIdsBySessionId(sessionId);
    }


}
